package br.fabrica.conexoes;

import java.io.IOException;
import java.util.Vector;
import org.ksoap.SoapObject;
import org.ksoap.transport.HttpTransport;
import br.fabrica.classes.ProdutoListaCompras;

public class BaixarListaThread extends Thread{
	
	public void run(String protocolo){
		SoapObject requisicao = new SoapObject(ConexaoInfo.getInstance().getUrlWebservice(), "baixarLista");
		requisicao.addProperty("protocolo", protocolo);
		
		HttpTransport retorno = new HttpTransport(ConexaoInfo.getInstance().getUrlWebservice(), "baixarLista");
		
		ConexaoInfo.getInstance().getListaCompras().apagarLista();
		
		try {
			String strProdutos = (String) retorno.call(requisicao);
			System.out.println(strProdutos);
			Vector vetorStrProdutos = ConexaoInfo.split(strProdutos, "\n");
			int sizeProdutos = vetorStrProdutos.size();
			for(int p= 0; p< sizeProdutos; p++){
				String stInfoProduto = (String) vetorStrProdutos.elementAt(p);
				Vector vetorInfoProdutos = ConexaoInfo.split(stInfoProduto, " ");
				int sizeInfo = vetorInfoProdutos.size();
				for(int i= 0; i< sizeInfo; i++){
					String stCodigo = (String) vetorInfoProdutos.elementAt(i);
					long id = Long.parseLong(stCodigo);
					String stQtde = (String) vetorInfoProdutos.elementAt(++i);
					int qtde = Integer.parseInt(stQtde);
					String nome = (String) vetorInfoProdutos.elementAt(++i);
					String fabricante = (String) vetorInfoProdutos.elementAt(++i); 
					String categoria = (String) vetorInfoProdutos.elementAt(++i);
					String descricao = (String) vetorInfoProdutos.elementAt(++i);
					String strPreco = (String) vetorInfoProdutos.elementAt(++i);
					float preco = Float.parseFloat(strPreco);
					String tipo = (String) vetorInfoProdutos.elementAt(++i);

					ProdutoListaCompras produto = new ProdutoListaCompras(id, nome, fabricante, categoria, descricao, preco, tipo);
					produto.setQtde(qtde);
					
					ConexaoInfo.getInstance().getListaCompras().addProduto(produto, produto.getQtde());
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
